<?php
class Rol_user_dao extends Base_dao
{	
	function __construct()
    {
		parent::__construct();
	
		$this->nombreTabla = 'userrol';
		$this->nombreColumnaID = 'id';
		$this->nombreModelo = 'Rol_user_dto';
		
		$this->load->model("$this->nombreModelo");
		$this->load->model('Rol_dao', 'Rol_dao');
	}
	
	public function guardar($objRolUserModel)
	{	
		$result = parent::guardar($this->nombreTabla, $this->nombreColumnaID, $objRolUserModel, $objRolUserModel->id);
		if($result['exito'])
		{
			if ($objRolUserModel->id == 0) { $objRolUserModel->id = $result['idGenerado']; }
		}
		
		return $result;
	}
	
	
	public function borrar($idRolUser)
	{
		return parent::borrar($this->nombreTabla, $this->nombreColumnaID, $idRolUser);
	}
	
	public function obtenerDatos($condiciones = array(), $crearObjetos = false, $limite = 0)
	{	
		return parent::obtenerDatos($this->nombreTabla, $this->nombreModelo, $condiciones, $crearObjetos, $limite);
	}
	
	public function obtenerObjetos($condiciones = array(), $limite = 0)
	{
		return $this->obtenerDatos($condiciones, true, $limite);
	}
	
	public function obtenerObjetoPorID($idBuscado)
	{
		$obj = parent::obtenerObjetoPorID($this->nombreTabla, $this->nombreColumnaID, $this->nombreModelo, $idBuscado);
		if($obj == NULL) $obj = new Rol_user_dto();
		
		return $obj;
	}
	
	public function obtenerPorUsuario($idUsuario)
	{	
		$condiciones['idUser'] = $idUsuario;
		$rolesUsuario = $this->obtenerObjetos($condiciones);
		
		for($indice = 0; $indice < sizeof($rolesUsuario); $indice++)
		{
			$idRol = $rolesUsuario[$indice]->idRol;
			$rolesUsuario[$indice]->setObjRol($this->Rol_dao->obtenerObjetoPorID($idRol));
		}
		
		return $rolesUsuario;
	}
	
	public function eliminarPorUsuario($idUsuario)
	{	
		$condiciones['idUser'] = $idUsuario;
		$rolesUsuario = $this->obtenerObjetos($condiciones);
		
		$exito['exito'] = TRUE;
		for($indice = 0; $indice < sizeof($rolesUsuario); $indice++)
		{
			$exito = $this->borrar($rolesUsuario[$indice]->id);
		}
		
		return $exito;
	}
}